package com.example.loginregister.Manager

import android.content.Context
import com.example.loginregister.Model.User
import com.google.gson.Gson
import java.io.File
import java.io.FileReader
import java.io.FileWriter

class FileManager private constructor() {

    companion object {
        private var instance: FileManager? = null
        fun sharedInstance(): FileManager {
            if (instance == null) {
                synchronized(this) {
                    if (instance == null) {
                        instance = FileManager()
                    }
                }
            }
            return instance!!
        }
    }

    //文件路径
    private fun filePath(context: Context) = "${context.filesDir}/userInfo"

    //读取数据
    fun readData(context: Context): List<User> {
        if (isFileExist(context)) {
            FileReader(filePath(context)).use {
                val jsonString = it.readText()
                return Gson().fromJson(jsonString, arrayListOf<User>()::class.java).toList()
            }
        }
        return emptyList()
    }

    //写入数据
    fun writeData(context: Context,users:List<User>){
        FileWriter(filePath(context)).use {
            it.write(Gson().toJson(users))
        }
    }

    //判断文件是否存在
    private fun isFileExist(context: Context) = File(filePath(context)).exists()
}